﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SRD.Model.SRD.DTO;
using SRD.Model.SRD.Util;
using System.Data.SqlClient;
using System.Data;
using System.Collections;
using System.Web.UI.WebControls;
using System.Configuration;

namespace SRD.Model.SRD.DAO
{
    class TipoDespesaDAO
    {
        DataClassesSRDDataContext bancoDados = new DataClassesSRDDataContext();
         
         public TipoDespesaDAO() 
         {
             
         }
                  
         // metodo de busca por parte do nome do setor         
         public IQueryable findByName(string nomeTipoDespesa)
         {
             var resultado = from t in bancoDados.TIPO_DESPESAs
                             where t.NM_TIPO_DESPESA.Contains(nomeTipoDespesa)
                             select t;
             return resultado;

         }

         //metodo de busca pelo id do setor 
         public TIPO_DESPESA findByID(TIPO_DESPESA tipoDespesa)
         {
             var resultado = (from t in bancoDados.TIPO_DESPESAs
                              where t.TIPO_DESPESA_ID == tipoDespesa.TIPO_DESPESA_ID
                              select t).First();

             return resultado;
         }

         //metodo para busca completa do setor ordenado
         public IQueryable findAll()
         {
             var resultado = from t in bancoDados.TIPO_DESPESAs
                             select t;

             return resultado;
         }

        // metodo para iserção do setor
         public string insert(TIPO_DESPESA tipoDespesa)
         {
             try
             {
                 bancoDados.TIPO_DESPESAs.InsertOnSubmit(tipoDespesa);
                 bancoDados.SubmitChanges();
                 return "Inclusão realizada com sucesso!";
             }
             catch (Exception o)
             {
                 return "Houve erro na inclusão: " + o.Message;
             }
         }

         // metodo para atualização do setor
         public string update(TIPO_DESPESA tipoDespesa)
         {
             try
             {
                 var setorExistente = (from t in bancoDados.TIPO_DESPESAs
                                         where t.TIPO_DESPESA_ID == tipoDespesa.TIPO_DESPESA_ID
                                         select t).First();
                 setorExistente = tipoDespesa;
                 bancoDados.SubmitChanges();
                 return "Atualização realizada com sucesso!";
             }
             catch (Exception o)
             {
                 return "Houve erro na atualização: " + o.Message;
             }
         }

        // metodo para remoção do tipo de despesa
         public string delete(TIPO_DESPESA tipoDespesa)
         {
             try
             {
                 var tipoDespesaExitente = (from t in bancoDados.TIPO_DESPESAs
                                        where t.TIPO_DESPESA_ID == tipoDespesa.TIPO_DESPESA_ID
                                        select t).First();
                 TIPO_DESPESA tipodesp = tipoDespesaExitente;
                 bancoDados.TIPO_DESPESAs.DeleteOnSubmit(tipodesp);
                 bancoDados.SubmitChanges();
                 return "Registro excluído com sucesso!";
             }
             catch (Exception o)
             {
                 return "Houve erro ao excluir: " + o.Message;
             }
         }
    }
}
